﻿// Study0306.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
// 第三章：函数
// 例3-6：
//每个骰子有六面，点数分别为1、2、3、4、5、6。游戏者在程序开始时输入一个无符号整数，作为产生随机数的种子。
//每轮投两次骰子，第一轮如果和数为7或11则为胜，游戏结束；和数为2、3或12则为负，游戏结束；
//和数为其它值则将此值作为自己的点数，继续第二轮、第三轮...
//直到某轮的和数等于点数则取胜，若在此前出现和数为7则为负。

#include <iostream>
#include <cstdlib>
using namespace std;

enum GameStatus { WIN, LOSE, PLAYING };

int main()
{
	int sum, myPoint;
	GameStatus status;
	unsigned seed;
	int RollDice();
	cout << "请输入一个正整数：";
	cin >> seed;
	srand(seed);
	sum = RollDice();
	switch (sum)
	{
	case 7:
	case 11:
		status = WIN;
		break;
	case 2:
	case 3:
	case 12:
		status = LOSE;
		break;
	default:
		status = PLAYING;
		myPoint = sum;
		cout << "我的点数是" << sum << endl;
		break;
	}
	while (status==PLAYING)
	{
		sum = RollDice();
		if (sum==myPoint)
		{
			status = WIN;
		}
		else if (sum==7)
		{
			status = LOSE;

		}
		
	}

	if (status==WIN)
	{
		cout << "玩家胜利!" << endl;

	}
	else
	{
		cout << "玩家胜利!" << endl;
	}
	return 0;
}

int RollDice()
{
	int dice1 = 1 + rand() % 6;
	int dice2= 1 + rand() % 6;
	int sum=dice1+dice2;
	cout << "玩家掷骰子" << dice1 << "+" << dice2 << "=" << sum << endl;
	return sum;

}
